package com.cz.video.website.service;


import com.cz.video.common.core.domain.PageQuery;
import com.cz.video.common.core.page.TableDataInfo;
import com.cz.video.website.domain.bo.WebsiteFollowBo;
import com.cz.video.website.domain.vo.WebsiteFollowVo;

import java.util.List;

/**
 * <p>
 * 关注 服务类
 * </p>
 * @since 2023-07-06
 */
public interface WebsiteFollowService {

  /**
   * 根据条件分页查询关注
   *
   * @param followBo 查询条件
   * @param pageQuery 分页条件
   *
   * @return 分页的关注数据
   */
  TableDataInfo<WebsiteFollowVo> page(WebsiteFollowBo followBo, PageQuery pageQuery);


  /**
   * 根据条件获取所有关注信息
   *
   * @return 关注list
   */
  List<WebsiteFollowVo> list(WebsiteFollowBo followBo);


  /**
   * 新增关注信息
   *
   * @param followBo 关注信息
   *
   * @return 修改记录数量
   */
  int add(WebsiteFollowBo followBo);



    /**
     * 通过ID删除关注
     *
     * @param userIds 历史IDs
     * @return 修改点赞数据数量
     */
    int deleteByUserIds(Long[] userIds);


    /**
     * 判断当前用户是否在{@code userId}的黑名单里面
     * @param userId 用户id
     * @param currentUserId 当前用户id
     * @return
     */
    boolean isBlack(Long userId, Long currentUserId);

    /**
     * 判断当前用户是否在{@code userId}的关注里面
     * @param userId 用户id
     * @param currentUserId 当前用户id
     * @return
     */
    boolean isFollow(Long userId, Long currentUserId);

}
